package com.open.rbac.service.sys;

import java.util.List;

import org.springframework.data.domain.Page;

import com.open.rbac.model.dto.sys.UserDto;
import com.open.rbac.model.query.UserQuery;
import com.open.rbac.model.vo.sys.UserVo;


/**
 * 用户服务
 *
 * @author Riche's
 * @since 2022/8/12
 */
public interface IUserService {

    UserDto create(UserVo userVo);

    UserDto update(UserVo userVo);

    void deleteById(String id);

    void enable(List<String> ids);

    void disable(List<String> ids);

    void resetPassword(String id);

    void updatePassword(String id, String password);

    void updateAvatar(String id, String avatar);

    void createOrganizations(String id, List<String> orgIds);

    void createRoles(String id, List<String> roleIds);

    UserDto findById(String id);

    UserDto findByUsername(String username);

    List<UserDto> list();

    Page<UserDto> page(UserQuery query);

}
